[t:/]$ 지식_

함수 딕셔너리

2023/09/14

C언어 할 때 종종 쓰던 방식인데, 아마도 패턴명이 있겠지만 그냥 갑시다.

C언어에서 함수 포인터의 배열에 이름을 명기하여 read, write로 추상화된 이름에 각각 다른 디바이스의 함수를 연결하여 쓰는 방식이 있다.

또는 프로세스, 커맨드, 익스큐트, 처리, 도움말, 아규먼트 제어 등에서도 쓰는 방식이다.

이것을 파이썬에서는 아주 간단히 구현할 수 있다.


def book_read():
    return 1

... 어쩌고 저쩌고
def buy_paper():
    return 222

proc_funcs = { 
    'book' : { 'read' : book_read, 'buy' : book_buy },
    'paper' : { 'read' : paper_read, 'buy' : paper_buy }
}

proc_func = proc_funcs['book']

proc_func['read']()

이런 방식을 많이들 쓰는지는 잘 모르겠으나..나는 종종 쓴다. 예컨데 url 컨트롤러 같은 것도 쉽다. 커뮤니티 활동을 해야 뭐 아는 것도 늘텐데 이하 생략합니다.





공유하기













[t:/] is not "technology - root". dawnsea, rss